package com.ruoyi.business.mapper;

import java.util.List;
import com.ruoyi.business.domain.AcCustomerInfo;

/**
 * 客户台账管理Mapper接口
 *
 * @author ruoyi
 * @date 2025-01-20
 */
public interface AcCustomerInfoMapper
{
    /**
     * 查询客户台账管理
     *
     * @param customerId 客户台账管理主键
     * @return 客户台账管理
     */
    public AcCustomerInfo selectAcCustomerInfoByCustomerId(Long customerId);
    public AcCustomerInfo selectAcCustomerInfoByIdCard(String idCard);

    /**
     * 查询客户台账管理列表
     *
     * @param acCustomerInfo 客户台账管理
     * @return 客户台账管理集合
     */
    public List<AcCustomerInfo> selectAcCustomerInfoList(AcCustomerInfo acCustomerInfo);

    /**
     * 新增客户台账管理
     *
     * @param acCustomerInfo 客户台账管理
     * @return 结果
     */
    public int insertAcCustomerInfo(AcCustomerInfo acCustomerInfo);

    /**
     * 修改客户台账管理
     *
     * @param acCustomerInfo 客户台账管理
     * @return 结果
     */
    public int updateAcCustomerInfo(AcCustomerInfo acCustomerInfo);

    /**
     * 删除客户台账管理
     *
     * @param customerId 客户台账管理主键
     * @return 结果
     */
    public int deleteAcCustomerInfoByCustomerId(Long customerId);

    /**
     * 批量删除客户台账管理
     *
     * @param customerIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAcCustomerInfoByCustomerIds(Long[] customerIds);

    //*********************************************************************************

    public int matchCustomerInfoByCustomerCode(String newCustomerCode);

    public int selectAcCustomerCountByCustomerId(Long customerId);

    List<AcCustomerInfo> selectCustomerNum();

    List<AcCustomerInfo> selectCustomerType();

    List<AcCustomerInfo> selectCustomerStatus();

    List<AcCustomerInfo> selectCustomerTop5();
}
